package com.dcd.controller;

import com.dcd.annotation.MultiRequestBody;
import com.dcd.pojo.Collection_information;
import com.dcd.service.Collection_informationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
/*MultiRequestBody解析器
        * 解决的问题：
        * 1、单个字符串等包装类型都要写一个对象才可以用@RequestBody接收；
        * 2、多个对象需要封装到一个对象里才可以用@RequestBody接收。
        * 主要优势：
        * 1、支持通过注解的value指定JSON的key来解析对象。
        * 2、支持通过注解无value，直接根据参数名来解析对象
        * 3、支持基本类型的注入
        * 4、支持GET和其他请求方式注入
        * 5、支持通过注解无value且参数名不匹配JSON串key时，根据属性解析对象。
        * 6、支持多余属性(不解析、不报错)、支持参数“共用”（不指定value时，参数名不为JSON串的key）
        * 7、支持当value和属性名找不到匹配的key时，对象是否匹配所有属性。*/
@RestController
@CrossOrigin
@RequestMapping("/collection_informationController")
public class Collection_informationController {

    @Autowired
    private Collection_informationService cis;

    /**
     * 根据用户登入id查询咨询收藏
     * @param user_id 用户登入id
     * @return
     */
    @RequestMapping("/select_collection_informationList_byId/{user_id}")
    public List<Collection_information> select_collection_informationList_byId(@PathVariable int user_id){
        return cis.select_collection_informationList_byId(user_id);
    }

    /**
     * 根据类型判断做添加或删除
     * @param collection_information 资讯收藏表对象
     * @param type 类型
     * @return
     */
    @RequestMapping("/insert_or_delete_collection_information")
    public String insert_or_delete_collection_information(@MultiRequestBody Collection_information collection_information,@MultiRequestBody String type){
        return cis.insert_or_delete_collection_information(collection_information,type);
    }

    /**
     * 查询用户是否关注指定
     * @param collection_information
     * @return
     */
    @RequestMapping("/select_user_collection_infomation")
    public String select_user_collection_infomation(@MultiRequestBody Collection_information collection_information){
        return cis.select_user_collection_infomation(collection_information);
    }
}
